package Dominio;

import hbt.PersistentObject;



import java.util.Date;

import javax.persistence.*;

import dto.RemitoTO;

@Entity
@Table(name="remitos")
public class Remito extends PersistentObject{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private int nroRemito; 
	
	@Column(name = "fechaEnvio",nullable=false)
	@Temporal(TemporalType.DATE)
	private Date fechaEnvio;

	@Column(name = "fechaEmision",nullable=false)
	@Temporal(TemporalType.DATE)
	private Date fechaEmision;
	
	@Column(name = "estado",nullable=false)
	private String estado;
	
	@OneToOne(cascade = CascadeType.MERGE)
	@JoinColumn(name="idCliente")
	private Cliente cliente;
	
	@Column(name = "numero", nullable = true)
	private int numero;
	
	@OneToOne(cascade = CascadeType.MERGE)
	@JoinColumn(name="ordenPedidoId")
	private OrdenDePedido ordenpedido;

	public Date getFechaEnvio() {
		return fechaEnvio;
	}

	public void setFechaEnvio(Date fechaEnvio) {
		this.fechaEnvio = fechaEnvio;
	}

	public OrdenDePedido getOrdenpedido() {
		return ordenpedido;
	}

	public void setOrdenpedido(OrdenDePedido ordenpedido) {
		this.ordenpedido = ordenpedido;
	}
	
	public Date getFechaEmision() {
		return fechaEmision;
	}

	public void setFechaEmision(Date fechaEmision) {
		this.fechaEmision = fechaEmision;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public int getNroRemito() {
		return nroRemito;
	}

	public void setNroRemito(int nroRemito) {
		this.nroRemito = nroRemito;
	}
	
	public RemitoTO toTO()
	{
		RemitoTO remTO = new RemitoTO();
		remTO.setNroRemito(nroRemito);
		remTO.setFechaEnvio(fechaEnvio);
		remTO.setFechaEmision(fechaEmision);
		remTO.setEstado(estado);
		remTO.setCliente(cliente.toTO());
		remTO.setOrdenpedido(ordenpedido.toTO());
		
		return remTO;		
	}
	
}